package com.jsmtr.rms.utils.ExcelImportHelper.service.impl;

import com.jsmtr.rms.entity.BaseUser;
import com.jsmtr.rms.utils.ExcelImportHelper.dao.JDBCHelper;
import com.jsmtr.rms.utils.ExcelImportHelper.service.IImportResultService;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 导入结果服务实现类（不包含内招）
 * @author: cyx
 * @description:
 * @date: Created in 2018/11/21 9:44
 * @modified by:
 */
public class ImportZZReusltService extends ImportResultService implements IImportResultService {
    private static   SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public Integer saveResumeResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.state=?, ";
            parms.add(result);
            zzsql+=" u.rrstate=?, ";
            zzparms.add(result);
            zzsql+=" u.rstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.sxbz=?, ";
            parms.add(remark);
            zzsql+=" u.rmarks=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            //sql+=" d.ruserid=?, ";
            //sql+=" d.rusername=?, ";
           // sql+=" d.rdate=?, ";
            //parms.add(baseUser.getId());
            //parms.add(baseUser.getUname());
           // parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.ruserid=?, ";
            zzsql+=" u.rusername=?, ";
            zzsql+=" u.rdate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.id=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }

    @Override
    public Integer saveRecommendResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.state=?, ";
            parms.add(result);
            zzsql+=" u.rrstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.sxbz=?, ";
            parms.add(remark);
            zzsql+=" u.rmarks=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            sql+=" d.ruserid=?, ";
            sql+=" d.rusername=?, ";
            sql+=" d.rdate=?, ";
            parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.ruserid=?, ";
            zzsql+=" u.rusername=?, ";
            zzsql+=" u.rdate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.userid=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }

    @Override
    public Integer saveReviewResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.zsstate=?, ";
            parms.add(result);
            zzsql+=" u.zsstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.zsremark=?, ";
            parms.add(remark);
            zzsql+=" u.zsremark=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            sql+=" d.zsuid=?, ";
            sql+=" d.zsuname=?, ";
            sql+=" d.zsdate=?, ";
            parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.zsuid=?, ";
            zzsql+=" u.zsuname=?, ";
            zzsql+=" u.zsdate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.userid=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }

    @Override
    public Integer saveInterviewResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update doms_user d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" d.point=?, ";
            parms.add(sorce);
            zzsql+=" u.msresult=?, ";
            zzparms.add(sorce);
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.result=?, ";
            parms.add(result);
            zzsql+=" u.msstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.scoringrules=?, ";
            parms.add(remark);
            zzsql+=" u.msremark=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
           // sql+=" d.zsuid=?, ";
            sql+=" d.pointuser=?, ";
            sql+=" d.pointdate=?, ";
          //  parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.msuid=?, ";
            zzsql+=" u.msuname=?, ";
            zzsql+=" u.msdate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=?  where d.userid=?  ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=?  where u.id=?  ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.fid like '%"+fid+"%' " ;
           // parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
           // zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            //sql+=" and d.pid=? ";
           // parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }


       /*  int dbresult=-1;
       JDBCHelper jdbcHelper=new JDBCHelper();
        jdbcHelper.setSql(sql);
        jdbcHelper.setSqlValues(parms);
        jdbcHelper.setSql(zzsql);
        jdbcHelper.setSqlValues(zzparms);
        dbresult=jdbcHelper.executeUpdate();*/
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }



    @Override
    public Integer savePhysicalResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.tjstate=?, ";
            parms.add(result);
            zzsql+=" u.tjstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.tjremark=?, ";
            parms.add(remark);
            zzsql+=" u.tjremark=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            sql+=" d.tjuid=?, ";
            sql+=" d.tjuname=?, ";
            sql+=" d.tjdate=?, ";
            parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.tjuid=?, ";
            zzsql+=" u.tjuname=?, ";
            zzsql+=" u.tjdate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.userid=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }



    @Override
    public Integer saveEmployResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.bdstate=?, ";
            parms.add(result);
            zzsql+=" u.bdstate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.bdremark=?, ";
            parms.add(remark);
            zzsql+=" u.bdremark=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            sql+=" d.bduid=?, ";
            sql+=" d.bduname=?, ";
            sql+=" d.bddate=?, ";
            parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.bduid=?, ";
            zzsql+=" u.bduname=?, ";
            zzsql+=" u.bddate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.userid=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }

    @Override
    public Integer saveSigingResult(BaseUser baseUser, String pid, String fid, String cardNo, String sorce, String result, String remark) throws Exception {
        List parms=new ArrayList();
        List zzparms=new ArrayList();
        String sql="update duserresume d set ";
        String zzsql="update hr_zzuser u set ";
        if (sorce!=null&&!sorce.equalsIgnoreCase("")){
            sql+=" ";
        }

        if (result!=null&&!result.equalsIgnoreCase("")){
            sql+=" d.qystate=?, ";
            parms.add(result);
            zzsql+=" u.qystate=?, ";
            zzparms.add(result);
        }

        if (remark!=null&&!remark.equalsIgnoreCase("")){
            sql+=" d.bdremark=?, ";
            parms.add(remark);
            zzsql+=" u.qyremark=?, ";
            zzparms.add(remark);
        }

        if (baseUser!=null){
            sql+=" d.qyuid=?, ";
            sql+=" d.qyuname=?, ";
            sql+=" d.qydate=?, ";
            parms.add(baseUser.getId());
            parms.add(baseUser.getUname());
            parms.add(new java.sql.Date(System.currentTimeMillis()));
            zzsql+=" u.qyuid=?, ";
            zzsql+=" u.qyuname=?, ";
            zzsql+=" u.qydate=?, ";
            zzparms.add(baseUser.getId());
            zzparms.add(baseUser.getUname());
            zzparms.add(new java.sql.Date(System.currentTimeMillis()));
        }else{
            throw new Exception("登录账户过期，请重新登录！");
        }

        if(cardNo!=null&&!cardNo.equalsIgnoreCase("")){
            sql+=" d.userid=? where d.userid=? ";
            parms.add(cardNo);
            parms.add(cardNo);
            zzsql+=" u.id=? where u.id=? ";
            zzparms.add(cardNo);
            zzparms.add(cardNo);
        }else{
            throw new Exception("导入人员不能为空！");
        }
        if (fid!=null&&!fid.equalsIgnoreCase("")){
            sql+=" and d.path like '%"+fid+"%' " ;
            //parms.add(fid);
            zzsql+=" and u.path like '%"+fid+"%' " ;
            //zzparms.add(fid);
        }else{
            throw new Exception("导入流程节点不能为空！");
        }

        if (pid!=null&&!pid.equalsIgnoreCase("")){
            sql+=" and d.proid=? ";
            parms.add(pid);
            zzsql+=" and u.pid=? ";
            zzparms.add(pid);
        }
        int[] dbresult=null;
        String[] sqlStrings=new String[]{sql,zzsql};
        JDBCHelper jdbcHelper=new JDBCHelper();
        Map<Integer,List> params=new HashMap<Integer,List>();
        params.put(0,parms);
        params.put(1,zzparms);
        jdbcHelper.setSqlStrings(sqlStrings);
        jdbcHelper.setMoreSqlValues(params);
        dbresult=jdbcHelper.executeMoreSqlPrepared();
        return dbresult.length;
    }

}
